package org.rbac.content;

import java.util.HashMap;
import java.util.Map;

/**
 * 
*  <pre>    
* 类名称：ApplicationContent 
* 类描述：   改版权限控制平台，应用程序容器
* 创建人：陈国祥   (kingschan)
* 创建时间：2015-6-12 下午2:47:18   
* 修改人：Administrator   
* 修改时间：2015-6-12 下午2:47:18   
* 修改备注：   
* @version V1.0
* </pre>
 */
public abstract class ApplicationContent {
    
    
    enum CONTENT{
        APPLICATION,//应用容器
        PRIVILEGE,//用户权限信息容器
        SQLQUERY    //SQL查询容器
    }
    
    protected static Map<CONTENT, String> contentMapping;
    static{
        contentMapping= new HashMap<ApplicationContent.CONTENT, String>();
        contentMapping.put(CONTENT.APPLICATION, "applicationContent");
        contentMapping.put(CONTENT.PRIVILEGE, "PrivilegeContent");
        contentMapping.put(CONTENT.SQLQUERY, "SQLContent");
    }
    /**
     * 初始化
     */
    public abstract void init();
    /**
     * 关闭
     */
    public abstract void shutdown();
    /**
     * 从容器中得到一个对象
     * @param key
     * @return
     */
    public abstract Object get(String key,CONTENT target);
    /**
     * 向容器里放置一个对象
     * @param key
     * @param value
     */
    public abstract void put(String key,Object value,CONTENT target);
    
    /**
     * 删除容器中的一个对象
     * @param key
     */
    public abstract void remove(String key,CONTENT target);
    
    /**
     * 删除所有
     */
    public abstract void removeAll(CONTENT target);
    
    /**
     * /得到对象占用内存的大小
     * @return
     */
    public abstract Long getMemoryStoreSize(CONTENT target);
    /**
     * 得到容器对象个数
     * @return
     */
    public abstract Integer getSize(CONTENT target);

}
